package plugin.demo.shardingsphere.xa.config.v5_0_0.enhancer;

import org.apache.shardingsphere.transaction.xa.jta.datasource.swapper.DataSourcePropertyProvider;
import org.apache.shardingsphere.transaction.xa.jta.datasource.swapper.impl.HikariCPPropertyProvider;

/**
 * @Author: Qiao Hang
 * @CreateDate: 2021/4/26 下午5:39
 * @UpdateDate:
 * @Description:
 */
public class HikariEnhancerPropertyProviders {


    public static class HikariEnhancer$1 extends AbstractHikariEnhancer{
        @Override
        public String getDataSourceClassName() {
            return "plugin.demo.shardingsphere.config.v5_0_0.ShardingJDBC5_0_0Adaptor_Hignly$1";
        }
    }

    public static class HikariEnhancer$2 extends AbstractHikariEnhancer{
        @Override
        public String getDataSourceClassName() {
            return "plugin.demo.shardingsphere.config.v5_0_0.ShardingJDBC5_0_0Adaptor_Hignly$2";
        }
    }

    public static class HikariEnhancer$3 extends AbstractHikariEnhancer{
        @Override
        public String getDataSourceClassName() {
            return "plugin.demo.shardingsphere.config.v5_0_0.ShardingJDBC5_0_0Adaptor_Hignly$3";
        }
    }

    public static class HikariEnhancer$4 extends AbstractHikariEnhancer{
        @Override
        public String getDataSourceClassName() {
            return "plugin.demo.shardingsphere.config.v5_0_0.ShardingJDBC5_0_0Adaptor_Hignly$4";
        }
    }

    public static class HikariEnhancer$5 extends AbstractHikariEnhancer{
        @Override
        public String getDataSourceClassName() {
            return "plugin.demo.shardingsphere.config.v5_0_0.ShardingJDBC5_0_0Adaptor_Hignly$5";
        }
    }

    public static class HikariEnhancer$6 extends AbstractHikariEnhancer{
        @Override
        public String getDataSourceClassName() {
            return "plugin.demo.shardingsphere.config.v5_0_0.ShardingJDBC5_0_0Adaptor_Hignly$6";
        }
    }

    public static class HikariEnhancer$7 extends AbstractHikariEnhancer{
        @Override
        public String getDataSourceClassName() {
            return "plugin.demo.shardingsphere.config.v5_0_0.ShardingJDBC5_0_0Adaptor_Hignly$7";
        }
    }

    public static class HikariEnhancer$8 extends AbstractHikariEnhancer{
        @Override
        public String getDataSourceClassName() {
            return "plugin.demo.shardingsphere.config.v5_0_0.ShardingJDBC5_0_0Adaptor_Hignly$8";
        }
    }


    public static class HikariEnhancer$9 extends AbstractHikariEnhancer{
        @Override
        public String getDataSourceClassName() {
            return "plugin.demo.shardingsphere.config.v5_0_0.ShardingJDBC5_0_0Adaptor_Hignly$9";
        }
    }


    public static class ShardingSphereDataSourceProxyEnhancer extends AbstractHikariEnhancer{
        @Override
        public String getDataSourceClassName() {
            return "plugin.demo.shardingsphere.config.proxy.ShardingSphereDataSourceProxy";
        }
    }

    public static abstract class AbstractHikariEnhancer implements DataSourcePropertyProvider{
        @Override
        public String getURLPropertyName() {
            return "jdbcUrl";
        }
        @Override
        public String getUsernamePropertyName() {
            return "username";
        }
        @Override
        public String getPasswordPropertyName() {
            return "password";
        }
    }



}
